﻿using StudentWeb.Common;
using StudentWeb.IDAL;
using StudentWeb.Model;

namespace StudentWeb.BLL
{
    // 定义一个记录类型 TeacherInfo，用于存储教师信息
    public record TeacherInfo
    (
        int TeacherID, // 教师ID
        string Mobile, // 教师手机号码
        string Name, // 教师姓名
        string Password // 教师密码
    );

    /// <summary>
    /// 业务逻辑层（Business Object），负责处理教师相关的业务逻辑
    /// </summary>
    [Service(EServLife.Scoped)] // 依赖注入的生命周期设为 Scoped，确保每个请求获得独立实例
    public class TeacherBO(ITeacherDataDAO teacherDataDAO)
    {
        #region 教师登录
        /// <summary>
        /// 教师登录
        /// </summary>
        /// <param name="Username">用户名（手机号码）</param>
        /// <param name="Password">密码</param>
        /// <returns>登录结果</returns>
        public IResult Login(string Username, string Password)
        {
            // 根据用户名（手机号码）获取教师信息
            var teacherInfo = teacherDataDAO.GetInfo("Mobile=@Mobile", new { Mobile = Username });
            if (teacherInfo == null || Password != teacherInfo.Password)
            {
                // 如果教师信息不存在或密码错误，返回失败结果
                return Result.Fail("用户名或密码错误");
            }

            // 构建返回结果
            var result = new
            {
                teacherInfo.TeacherID,
                teacherInfo.Mobile,
                teacherInfo.Name,
            };
            // 返回成功结果，包含教师信息
            return Result.Data(result);
        }
        #endregion
    }
}